<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:p="http://primefaces.org/ui">

<h:head>
	<title>Carrinho de compras WEB</title>
</h:head>
<h:body>
	<ui:composition template="/pages/template.xhtml">
		<ui:define name="conteudo">
		<f:view beforePhase="#{authorizationListener.anuncianteAndAdminPhase}">
		
			<h:form id="cadastrarProdutos">
				<p:panel header="Cadastrar Produtos">
					<p:messages id="messageProdutosAnunciante" />
					<p:panelGrid styleClass="semBorda">
					
<!-- 				Apresentar somente se n for um anunciante logado -->
						<c:if test="#{anuncianteSession == null}">
						<p:row>
							<p:column>
								<p:outputLabel value="Anunciante" for="anunciante"></p:outputLabel>
							</p:column>
							<p:column>
								<p:selectOneMenu value="#{produtoBean.idAnunciante}"
									id="anunciante" required="true" 
									requiredMessage="Selecione um Anunciante para o produto">
									<f:selectItem itemLabel="Selecione um anunciante" itemValue=""  ></f:selectItem>
									<f:selectItems value="#{produtoBean.listAnunciantes}"
										var="a" itemLabel="#{a.nome}" itemValue="#{a}" >
									</f:selectItems>
									<p:ajax update="@form" listener="#{produtoBean.buscarProdutoAnunciante}"></p:ajax>
								</p:selectOneMenu>
							</p:column>
							<p:column>
								<h:outputText>&nbsp;</h:outputText>
							</p:column>
						</p:row>
						</c:if>
						
						<p:row>
							<p:column>
								<p:outputLabel value="Codigo de barras:" for="codigoDeBarras" />
							</p:column>
							<p:column>
								<p:inputMask mask="9 999999 999999" id="codigoDeBarras"  
									value="#{produtoBean.produto.codigoBarra}" required="true"
									requiredMessage="Codigo de barras obrigatorio.">
									<p:ajax update="@form" listener="#{produtoBean.buscarProdutoAnunciante}"></p:ajax>
								</p:inputMask>
							</p:column>
							<p:column>
								<h:outputText value="Para pesquisar um produto informe o codigo de barras."></h:outputText>
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<p:outputLabel value="Nome Produto:" for="nome" />
							</p:column>
							
							<p:column>
								<p:inputTextarea rows="5" cols="70" counter="counter1"
									maxlength="500" counterTemplate="{0} caracteres faltantes."
									autoResize="false" disabled="#{produtoBean.desabilitarCampo}"
									value="#{produtoBean.produto.nome}"
									required="true" requiredMessage="Nome obrigatorio." id="nome"/>
							</p:column>
							<p:column>
								<h:outputText id="counter1" rendered="#{!produtoBean.desabilitarCampo}" />
							</p:column>
						</p:row>

						<p:row>
                          <p:column>
                                <p:outputLabel value="Preco de:" for="precoDe"></p:outputLabel>
                          </p:column>
                          <p:column>
                             <p:inputText value="#{produtoBean.produtoAndAnunciante.precoDe}" id="precoDe" validatorMessage="Valor invalido.">
                                <f:validateDoubleRange minimum="0.00"></f:validateDoubleRange>
                                <f:convertNumber minFractionDigits="2" locale="PT_BR" ></f:convertNumber>
                                <f:converter converterId="valorConverter"></f:converter>
                             </p:inputText>
                          </p:column>
                          <p:column>
                             <h:outputText>&nbsp;</h:outputText>
                          </p:column>
                       </p:row>

						<p:row>
							<p:column>
								<p:outputLabel value="Preco por:" for="precoPor"></p:outputLabel>
							</p:column>
							<p:column>
								<p:inputText value="#{produtoBean.produtoAndAnunciante.precoPor}" required="true" 
									requiredMessage="Preco Por Obrigatorio." id="precoPor" validatorMessage="Preco Por invalido.">
									<f:validateDoubleRange minimum="0.01"></f:validateDoubleRange>
									<f:convertNumber minFractionDigits="2" locale="PT_BR" ></f:convertNumber>
									<f:converter converterId="valorConverter"></f:converter>
								</p:inputText>
							</p:column>
							<p:column>
								<h:outputText>&nbsp;</h:outputText>
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<p:outputLabel value="Modelo:" for="modelo"></p:outputLabel>
							</p:column>
							<p:column>
								<p:inputText value="#{produtoBean.produto.modelo}" required="true" 
									requiredMessage="Modelo Obrigatoria." id="modelo">
								</p:inputText>
							</p:column>
							<p:column>
								<h:outputText>&nbsp;</h:outputText>
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<p:outputLabel value="Marca:" for="marca"></p:outputLabel>
							</p:column>
							<p:column>
								<p:inputText value="#{produtoBean.produto.marca}" required="true" 
									requiredMessage="Marca Obrigatoria." id="marca">
								</p:inputText>
							</p:column>
							<p:column>
								<h:outputText>&nbsp;</h:outputText>
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<h:outputLabel value="Foto:"/>
							</p:column>
							<p:column colspan="2">
<!-- 								Se produto ja possui cadastro trazer a imagem se for produto cadastrado pelo crawler trara URL da imagem -->
								<c:if test="#{produtoBean.produto.id != 0}">
									<!-- Mostrar a imagem que foi pega pelo Crawler e esta salva somente o link -->
									<p:graphicImage value="#{produtoBean.produto.imagem}" width="80px"
										alt="#{produtoBean.produto.nome}" rendered="#{produtoBean.produto.pegoEmSite == 'true'}"/>
									<!-- Mostrar a imagem que esta salva no servidor -->
									<p:graphicImage value="../image/#{produtoBean.produto.imagem}" width="80px"
										alt="#{produtoBean.produto.nome}" rendered="#{produtoBean.produto.pegoEmSite == ' '}" />
<!-- 								Se produto for novo pedir para selecionar a foto -->
								</c:if>
								<c:if test="#{produtoBean.produto.id == 0 || userSession.tipoUsuario == 'A'}">
									<p:fileUpload id="foto" styleClass="fileUploader"  allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
										fileUploadListener="#{produtoBean.uploadAction}" auto="true" 
										value="Selecione" required="true" update="messageProdutosAnunciante"
										requiredMessage="Foto Obrigatorio.">
									</p:fileUpload>
								</c:if>
								
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<p:outputLabel for="categPri" value="Categoria Principal: "/>
							</p:column>
							<p:column>
								<p:selectOneMenu value="#{produtoBean.produto.categoriaNivel0}" validatorMessage="Selecione a categoria Principal:" 
									id="categPri" required="true" requiredMessage="Selecione a categoria Principal:" disabled="#{produtoBean.desabilitarCampo}">
									<p:ajax update="categPri categ1 categ2 categ3" listener="#{produtoBean.atualizarCategoriaNivel1}" > </p:ajax>
									<f:selectItem itemLabel="Selecione a categoria Principal" itemValue="0" ></f:selectItem>
									<f:selectItems value="#{produtoBean.listCategorias0}" var="a" itemLabel="#{a.nome}" itemValue="#{a}" >
									</f:selectItems>
								</p:selectOneMenu>
							</p:column>
							<p:column>
								<h:outputText>&nbsp;</h:outputText>
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<p:outputLabel for="categ1" value="Categoria Nivel 1: "/>
							</p:column>
							<p:column>
								<p:selectOneMenu value="#{produtoBean.produto.categoriaNivel1}" styleClass="selectOne"
									id="categ1" disabled="#{produtoBean.desabilitarCampo}">
									<p:ajax update="categ1 categ2 categ3" listener="#{produtoBean.atualizarCategoriaNivel2}" > </p:ajax>
									<f:selectItem itemLabel="Selecione a categoria filha nivel 1" itemValue="0" ></f:selectItem>
									<f:selectItems value="#{produtoBean.listCategorias1}" var="a" itemLabel="#{a.nome}" itemValue="#{a}" >
									</f:selectItems>
								</p:selectOneMenu>
							</p:column>
							<p:column>
								<h:outputText>&nbsp;</h:outputText>
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<p:outputLabel for="categ2" value="Categoria Nivel 2: "/>
							</p:column>
							<p:column>
								<p:selectOneMenu value="#{produtoBean.produto.categoriaNivel2}" styleClass="selectOne"
									id="categ2" disabled="#{produtoBean.desabilitarCampo}">
									<p:ajax update="categ2 categ3" listener="#{produtoBean.atualizarCategoriaNivel2}" > </p:ajax>
									<f:selectItem itemLabel="Selecione a categoria filha nivel 2" itemValue="0" ></f:selectItem>
									<f:selectItems value="#{produtoBean.listCategorias2}" var="a" itemLabel="#{a.nome}" itemValue="#{a}" >
									</f:selectItems>
								</p:selectOneMenu>
							</p:column>
							<p:column>
								<h:outputText>&nbsp;</h:outputText>
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<p:outputLabel for="categ3" value="Categoria Nivel 3: "/>
							</p:column>
							<p:column>
								<p:selectOneMenu value="#{produtoBean.produto.categoriaNivel3}" styleClass="selectOne"
									id="categ3" disabled="#{produtoBean.desabilitarCampo}">
									<f:selectItem itemLabel="Selecione a categoria filha nivel 3" itemValue="0" ></f:selectItem>
									<f:selectItems value="#{produtoBean.listCategorias3}" var="a" itemLabel="#{a.nome}" itemValue="#{a}" >
									</f:selectItems>
								</p:selectOneMenu>
							</p:column>
							<p:column>
								<h:outputText>&nbsp;</h:outputText>
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<p:outputLabel value="Data Validade do Anuncio:" for="dataValAnuncio" />
							</p:column>
							<p:column>
								<p:inputMask mask="99/99/9999" id="dataValAnuncio" required="true" requiredMessage="Data Invalida"
									value="#{produtoBean.produtoAndAnunciante.dataValidadeAnuncio}" validatorMessage="Data invalida">
									<f:convertDateTime pattern="dd/MM/yyyy" />
									<f:validator validatorId="dataAnuncioValidar"></f:validator>
								</p:inputMask>
							</p:column>
							<p:column>
								<h:outputText>&nbsp;</h:outputText>
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<p:outputLabel for="descricao" value="Descrição Produto:"></p:outputLabel>
							</p:column>
							<p:column>
								<p:inputTextarea rows="8" cols="70" counter="counter"
									maxlength="1000" counterTemplate="{0} caracteres faltantes."
									autoResize="false" disabled="#{produtoBean.desabilitarCampo}"
									value="#{produtoBean.produto.descricaoProduto}"
									required="true" requiredMessage="Descrição produto obrigatoria." id="descricao"/>
							</p:column>
							<p:column>
								<h:outputText id="counter" />
							</p:column>
						</p:row>
						
						<p:row>
							<p:column>
								<p:commandButton action="#{produtoBean.salvar}" value="Salvar" update="messageProdutosAnunciante @form"/>
							</p:column>
							<p:column>
								<h:outputText></h:outputText>
							</p:column>
							<p:column>
								<h:outputText></h:outputText>
							</p:column>
						</p:row>
					</p:panelGrid>
				</p:panel>
			</h:form>
			</f:view>
		</ui:define>
	</ui:composition>
</h:body>
</html>